#include <png.h>
#include <string.h>
void func(png_structp png_str,size_t length,const void *user_data){
    png_charp chunkdata;
    if(length==SIZE_MAX){
        /* Handle error */
    }
    chunkdata=(png_charp)png_malloc(png_str,length+1);
    if(NULL==chunkdata){
        /* Handle error */
    }
    /* ... */
    memcpy(chunkdata,user_data,length);
    /* ... */
}